<?php 
class perfil extends CI_Controller
{
	private static $titulo_lista_perfil = 'Perfil';

	public function __construct()
	{
		parent::__construct();
		$this->load->model("Perfil_Model",'',TRUE);
		$this->load->helper('url','image_lib');
	}
	public function index()
	{
		$data['title'] = 'perfil';

		$data['table'] = $this->gerar_tabela($this->Perfil_Model->get(null));

		$this->carrega_view('perfil/listaperfil', $data);
	}

	public function apagar ($id){
		$this->Perfil_Model->apaga($id);

		$data = array(
				'title' => perfil::$titulo_lista_perfil,
				'mensagem' => 'Perfil apagado com sucesso!',
				'perfil' => $this->Perfil_Model->get(null)
		);
		
		$data['table'] = $this->gerar_tabela($this->Perfil_Model->get(null));

		$this->carrega_view('perfil/listaperfil', $data);
	}

	public function view($id)
	{
		$data['perfil'] = $this->Perfil_Model->get($id);
	}

	public function criar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');

		$data['title'] = 'Novo Perfil';
		

		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);


		$this->form_validation->set_rules(
				'comentario',
				'Comentários',
				'required|min_length[3]'
		);

		

		if ($this->form_validation->run() === FALSE)
		{

			$this->carrega_view('perfil/criar', $data);

		}
		else
		{
				
			$this->Perfil_Model->define_perfil();
				
			$data = array(
					'title' => perfil::$titulo_lista_perfil,
					'mensagem' => 'Perfil criado com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Perfil_Model->get(null));
			$this->carrega_view('perfil/listaperfil', $data);
		}
	}
	
	function editar($codigo)
	{
		$data['title'] = 'Atualizar Perfil';
		$data['registro'] = $this->Perfil_Model->get($codigo);
	
		$this->carrega_view('perfil/criar', $data);
	}
	
	public function atualizar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');
	
		$data['title'] = 'Atualizar Perfil';
	
		
		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);


		$this->form_validation->set_rules(
				'comentario',
				'Comentários',
				'required|min_length[3]'
		);
	
		if ($this->form_validation->run() === FALSE)
		{
	
			$this->carrega_view('perfil/criar', $data);
	
		}
		else
		{
	
			$this->Perfil_Model->update_perfil();
	
			$data = array(
					'title' => perfil::$titulo_lista_perfil,
					'mensagem' => 'Perfil atualizado com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Perfil_Model->get(null));
			$this->carrega_view('perfil/listaperfil', $data);
		}
	}

	private function gerar_tabela($perfils){
		
		$this->load->library('table');
		$this->table->set_empty("&nbsp;");
		$this->table->set_heading('Id', 'Perfil', 'Comentários', 'Ações');
		foreach ($perfils as $perfil){
			$this->table->add_row($perfil["id"], $perfil["nome"], $perfil["comentario"],
					anchor('perfil/editar/'.$perfil["id"],'Atualizar',array('class'=>'update')).' '.
					anchor('perfil/apagar/'.$perfil["id"],'Remover',array('class'=>'delete','onclick'=>"return confirm('Tem certeza que deseja remover esse perfil ?')"))
			);
		
		
		}
		return ($this->table->generate());
	}
	/**
	 * Carrega a view com o cabeçalho e o rodapé.
	 *
	 * @param unknown_type $caminho_view Caminho da view.
	 * @param unknown_type $dados Array com os dados para a view.
	 */
	private function carrega_view($caminho_view, $dados){

		$this->load->view('templates/cabecalho', $dados);
		$this->load->view($caminho_view, $dados);
		$this->load->view('templates/rodape');
	}
}
?>